/****************************************************************
* 模块名称：ChkInputs.js(基于自定义属性的客户端统一验证JavaScript函数库组件)
* 当前版本：2.1.4
* 开发人员：楚涛
* 开发时间：2008-01-01
* 功    能：基于自定义属性的统一检测客户端输入之用的JavaScript函数库
            可以验证输入框的内容必填、数据类型、字节长度及自定义校验和下拉框等
            此函数库可用于支持JavaScript的各种浏览器的Web开发项目的使用
* 版本历史：
*           2009-01-20 添加对控件的分组校验功能
*           2009-02-10 添加对控件的除去不能为空的所有校验功能
*           2009-04-01 添加单击、Enter键盘键，未通过验证终止事件功能，
*           2010-05-02 添加可指定验证控件初始值、弹出消息的类型、支持自定义验证正则表达式功能、指定控件的初始值
*           2010-06-02 添加验证信息在页面静态文本的显示
*           2010-06-16 添加数据值型控件的可设置最大、最小值的限制
*           2010-06-26 添加对Firefox等的全面兼容
*           2010-08-01 添加对验证不通过的控件改变样式的功能
*           2010-10-10 添加对日期时间及当前日期时间的比较、身份证格式、组合值和指定控件的验证
*           2011-01-01 添加为所有验证控件订购失去焦点时的即时验证事件
*           2011-01-15 添加可设置显示类似谷歌/百度下拉选项菜单(弹出层div显示valuerange设置项)
*           2011-03-12 添加对复选框/单选框的验证
*           2011-04-16 将选择符$改为$$
*           2011-05-15 添加输入最小长度的判断
            可使用【onmousedown(鼠标单击)并结合onkeydown(键盘键)】 或者 【OnClientClick事件】【onclick】等方式。示例如下：
                <script language="javascript">function CheckAll(){verifyAll(return document.getElementById("form1"));}</script>
	            onmousedown="return CheckAll();"  onkeydown="if(event.keyCode == 13){return CheckAll();}"
            如：在asp.net下的 aspx 页面中直接使用OnClientClick="return CheckAll();" 
            在HTML控件中可直接使用 onclick="return CheckAll();"
*****************************************************************/
/****************************************************************
© 楚涛 2008-2011  lxchutao@163.com  QQ:290363711  http://blog.csdn.net/chutao
*****************************************************************/
/****************************************************************
详细说明：
为每个需要进行数据校验的控件自定义了如下新属性，分别是: 
1、chinese：表示该数据校验的控件的中文名称，同时标示待验证控件(必设属性,未设置的将直接跳过,不予验证)，并在校验出错时显示所用。
2、maxsize：表示允许输入的最大长度，这个长度是以字节为单位计算的;
   minsize：表示必须输入的最小长度，这个长度也是以字节为单位计算的。
3、nullable：表示输入值是否允许为空。为no时不允许为空。 
4、datatype：表示输入值的数据类型。数据类型属性值用户可以根据需要自行扩展定义，
	需要注意的是，对于每一个新的数据类型，均需要在下面代码中添加相应的校验函数，从而实现统一校验。
	目前支持：
	number : 正整数数字字符串
	int :整数数字字符串(可正可负)(integer)
	float : 浮点型数字字符串(可正可负)
	alphanumeric : 只包含字母和数字的字符串
	date : 日期类型(yyyy-MM-dd、yyyy/MM/dd)(comparecurrent:"1"小于当前日期,"2"大于当前日期,"3"小于等于当前日期,"4"大于等于当前日期)
	datetime : 日期时间类型(yyyy-MM-dd HH:mm:ss、yyyy/MM/dd hh:mm:ss)(comparecurrent:"1"小于当前日期时间,"2"大于当前日期时间,"3"小于等于当前日期时间,"4"大于等于当前日期时间)
	time : 时间类型(HH:mm:ss)(comparecurrent:"1"小于当前时间,"2"大于当前时间,"3"小于等于当前时间,"4"大于等于当前时间)
	idcard : 中华人民共和国身份证号码
	regular :自定义的验证正则表达式(regexpression验证正则表达式,notmatchinfo:验证不匹配的提示信息)(配合regular使用)
5、group: 表示分组验证的组别名称，属于哪一组(可选)
   group1: 表示另类分组，补充group属性，可选，用于一个控件属于多个组时的验证
   group2: 表示另类分组，补充group属性，可选，用于一个控件属于多个组时的验证
   group3: 表示另类分组，补充group属性，可选，用于一个控件属于多个组时的验证
   group4: 表示另类分组，补充group属性，可选，用于一个控件属于多个组时的验证
   group5: 表示另类分组，补充group属性，可选，用于一个控件属于多个组时的验证
6、initialvalue: 设置控件的初始值
7、maxvalue、minvalue: 设置数值型控件的最大、最小值
   notequalmax="true": 不等于最大值的标示,默认等于
   notequalmin="true": 不等于最小值的标示,默认等于
8、notmatchclass:验证不通过控件的样式名称；若未设置该属性则控件样式保持不变
   oldclassname:记录不匹配验证控件的原来的样式名称，配合notmatchclass使用
9、valuerange: 定义所包含的组合值,分隔符(m_split="|";如："x|y|z";分割符可以修改,如m_split="┋"等)
   notcheckvaluerange="true"：指示不检查valuerange组合值，false或不设置：将检查
10、showmenu：设置显示下拉项菜单(弹出层div显示valuerange设置项)，1:下拉选项菜单(可选择)，2:下拉项菜单(不可选择)；(可选)
    chk_menuclass：弹出层div样式(showmenu有值时必选)
    chk_menuclass_mouseover：弹出层div选项鼠标移在上面时的样式(showmenu有值时必选)
    chk_menuclass_mouseout：弹出层div选项鼠标移出时的样式(showmenu有值时必选)
    须配合valuerange使用
11、ischeckinstant：设置是否使用即时验证功能，"false"不使用，须手动设置；默认使用，不用设置
12、chkminselct：设置checkbox最少选择项(可选)
13、
/****************************************************************/

var m_msgType = 2;//提示信息类型(全局设置 1:弹出单个提示、2:弹出全部提示(默认推荐选项)、3:页面控件静态显示)
var m_MessageId = "MessageId";//m_msgType = 3 时用于页面控件静态显示验证信息的控件ID,该控件在页面必须存在否则找不到控件对象无法显示验证信息
var m_AttributeFlag = 0;//自定义属性是否区分大小写标示，默认0不区分大小写，1区分大小写
var m_TrimFlag = 0;//设置验证字符串长度是否包含两边空白部分,默认0不包含(即过滤两边空白),1包含(即不过滤两边空白)
var m_split = "|";//设置valuerange组合值的分隔符,默认"|";可以修改,如m_split="┋"等
var m_Alert_Mode = 0;//设置提示框(chkAlert)的模式,默认0:alert,
var m_msgAll = "";//产生的所有信息
var m_input = null;//记录第一个验证未通过的对象
var m_inputNames = new Array();//记录按Name验证的Input
var m_form;//保留

/* 初始化参数 */
function initAllParams()
{
	m_msgAll = "";//产生的所有信息
    m_input = null;
    m_inputNames = new Array();
}

/* 检测指定FORM表单所有应被检测的元素（那些具有自定义属性的元素）是否合法，此函数用可于表单的onsubmit等事件 */
function verifyAll(myform)
{
	initAllParams();
	try
	{
		if(m_msgType == 1)return verifyAllType1(myform);
		else if(m_msgType == 3)return verifyAllType3(myform);
		else return verifyAllType2(myform);
	}
	catch(e){return CancelClientEvent();}
}
/* 预处理订购所有控件的事件 */
function loadAllChkInputs(myform)
{
	try
	{
		var i;
		var length = myform.elements.length;
		for (i = 0;i < length; i++)
		{
			if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
			/* 为所有验证控件订购失去焦点时的验证事件 */
			detachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
			attachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
			/* 订购所有控件获得焦点时的事件 */
			if(myform.elements[i].getAttribute("valuerange",m_AttributeFlag) != null)
			{
				if(myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="1")
				{
					detachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
					attachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
				}
				else if(myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="2")
				{
					detachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
					attachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
					myform.elements[i].setAttribute("notcheckvaluerange", "true")
				}
			}
		}
	}
	catch(e){}
}
/* $函数 */
window.$$ = function(id)
{
	return document.getElementById(id);
};
/* 修改Object原型的方法来申明attachEvent的兼容方法 */
/*
Object.prototype.attachEvent = function(eventType,fnHandler)
{
	if(!this[eventType]){
		this[eventType]=fnHandler;
	}
	else{
		this[eventType]=this[eventType].attach(fnHandler);
	}
}
Function.prototype.attach=function(fnHandler){
	var f=this;
	return function(){
		f();
		fnHandler();
	}
}
*/
/* attachEvent()兼容方法 */
function attachEventHandler(target, eventType, fnHandler) {
    if (target.addEventListener) {
        target.addEventListener(eventType, fnHandler, false);
    } else if (target.attachEvent) {
        target.attachEvent("on" + eventType, fnHandler);
    } else {
        target["on" + eventType] = fnHandler;
    }
}
/* detachEvent()兼容方法 */
function detachEventHandler(target,eventType,fnHandler) {
	if (target.removeEventListener)
		target.removeEventListener(eventType,fnHandler,false);
	else if (target.detachEvent)
		target.detachEvent("on"+eventType,fnHandler);
	else {
		target["on" + sEventType]=null;
	}
}
/* 检测指定FORM表单所有应被检测的元素（那些具有自定义属性的元素）是否合法，剔除不能为空的判断，此函数用可于表单的onsubmit等事件 */
function verifyAllExceptNullable(myform)
{
	initAllParams();
	try
	{
	    if(m_msgType == 1)return verifyAllExceptNullableType1(myform);
	    else if(m_msgType == 3)return verifyAllExceptNullableType3(myform);
	    else return verifyAllExceptNullableType2(myform);
	}
	catch(e){return CancelClientEvent();}
}

/* 分组验证 */
function verifyAllByGroup(myform,groupname)
{
	initAllParams();
	try
	{
	    if(m_msgType == 1)return verifyAllGroupType1(myform,groupname);
	    else if(m_msgType == 3)return verifyAllGroupType3(myform,groupname);
	    else return verifyAllGroupType2(myform,groupname);
	}
	catch(e){return CancelClientEvent();}
}

/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup1(myform,groupname)
{
	initAllParams();
	try
	{
	    if(m_msgType == 1)return verifyAllGroup1Type1(myform,groupname);
	    else if(m_msgType == 3)return verifyAllGroup1Type3(myform,groupname);
	    else return verifyAllGroup1Type2(myform,groupname);
	}
	catch(e){return CancelClientEvent();}
}

/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup2(myform,groupname)
{
	initAllParams();
	try
	{
	    if(m_msgType == 1)return verifyAllGroup2Type1(myform,groupname);
	    else if(m_msgType == 3)return verifyAllGroup2Type3(myform,groupname);
	    else return verifyAllGroup2Type2(myform,groupname);
	}
	catch(e){return CancelClientEvent();}
}

/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup3(myform,groupname)
{
	initAllParams();
	try
	{
	    if(m_msgType == 1)return verifyAllGroup3Type1(myform,groupname);
	    else if(m_msgType == 3)return verifyAllGroup3Type3(myform,groupname);
	    else return verifyAllGroup3Type2(myform,groupname);
	}
	catch(e){return CancelClientEvent();}
}

/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup4(myform,groupname)
{
	initAllParams();
	try
	{
	    if(m_msgType == 1)return verifyAllGroup4Type1(myform,groupname);
	    else if(m_msgType == 3)return verifyAllGroup4Type3(myform,groupname);
	    else return verifyAllGroup4Type2(myform,groupname);
	}
	catch(e){return CancelClientEvent();}
}

/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup5(myform,groupname)
{
	initAllParams();
	try
	{
	    if(m_msgType == 1)return verifyAllGroup5Type1(myform,groupname);
	    else if(m_msgType == 3)return verifyAllGroup5Type3(myform,groupname);
	    else return verifyAllGroup5Type2(myform,groupname);
	}
	catch(e){return CancelClientEvent();}
}
/* 为所有验证控件订购失去焦点时的验证事件 无返回值 */
function verifyAllOnblur(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i++)
	{
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		//myform.elements[i].detachEvent("onblur",verifyInputOnblur);//未实现修改Object原型的方法来申明detachEvent的兼容方法
		detachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
		//myform.elements[i].attachEvent("onblur",verifyInputOnblur);
		attachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
	}
}
/* 验证控件失去焦点时的验证事件(仅用于verifyAllOnblur) 无返回值 */
function verifyInputOnblur()
{
	var event = arguments[0]||window.event;
	var eventSource=event.srcElement||event.target;
	checkInputNoFocus(eventSource);
}

/* 订购所有控件获得焦点时的下拉选择事件 无返回值 */
function showAllSelectMenu(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i++)
	{
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		if(myform.elements[i].getAttribute("valuerange",m_AttributeFlag) != null  && myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="1")
		{
			detachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
			attachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
		}
	}
}
/* 订购控件显示下拉选择项事件 无返回值 */
function showSelectMenuOnEvent()
{
	var event = arguments[0]||window.event;
	var eventSource=event.srcElement||event.target;
	showSelectMenu(eventSource);
}
/* 订购显示指定控件下拉选择项菜单 */
function showSelectMenu(input)
{
	var v_m_input_cursor=0;//事件源 0:光标移入 1:光标移出
	var v_m_menu_cursor=1; //弹出层 0:光标移入 1:光标移出
	var v_m_menu_id = "chk_new_select_menudiv_1";//下拉选项菜单id
	var v_m_input_isSetnotcheckvaluerange = 0;//判断该控件是否设置了notcheckvaluerange的属性值,0未设置，1已设置
	var v_m_input_Oldnotcheckvaluerange = "";//该控件所设置了notcheckvaluerange的属性值

    if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
    if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
    //新弹出层
    var newDiv = document.createElement("div");//document.createElement("iframe");//
    newDiv.id = v_m_menu_id;
    //newDiv.style.background = "#EFEFEF";
    //newDiv.style.border = "1px solid #860001";
    //newDiv.style.padding = "5px";
    newDiv.className="chk_menuclass";
    newDiv.style.position = "absolute";
    newDiv.style.zIndex = 9999;
    newDiv.style.overflow="auto";
    //newDiv.style.filter = "alpha(opacity=40)";
    //newDiv.style.opacity = "0.40";
    
    newDiv.style.width = input.offsetWidth + "px";
//    newDiv.style.top = input.offsetTop + input.offsetHeight + input.offsetParent.offsetTop + "px";
//    newDiv.style.left = input.offsetLeft + input.offsetParent.offsetLeft + "px";
    newDiv.style.top = input.offsetHeight + getChkInputTop(input) + "px";
    newDiv.style.left = getChkInputLeft(input) + "px";

    input.getAttribute("valuerange",m_AttributeFlag)
    var arr = input.getAttribute("valuerange",m_AttributeFlag).split(m_split);
    if(arr.length>25)
    {
    	newDiv.style.height = 500 + "px";
    }
    for(var i=0;i<arr.length;i++)
    {
    	var v_element=document.createElement("div");
    	v_element.innerHTML =arr[i];
    	if(input.value!=null && input.value!="" && input.value==arr[i])
    	{
			v_element.style.fontWeight="bold";
		}
		else
		{
			v_element.style.fontWeight="";
		}
		//v_element.style.zIndex = 9999;
  	    detachEventHandler(v_element,"mouseover",setSubDivMouseOver);
  	    detachEventHandler(v_element,"mouseout",setSubDivMouseOut);
  	    detachEventHandler(v_element,"mousedown",setSubDivClick);//click,mouseup
  	       	
  	    attachEventHandler(v_element,"mouseover",setSubDivMouseOver);
  	    attachEventHandler(v_element,"mouseout",setSubDivMouseOut);
		attachEventHandler(v_element,"mousedown",setSubDivClick);//click,mouseup

        newDiv.appendChild(v_element);
    }

    detachEventHandler(newDiv,"mouseover",newDivSelectMouseMove);
    //detachEventHandler(newDiv,"mouseout",newDivSelectMouseOut);
       	
    attachEventHandler(newDiv,"mouseover",newDivSelectMouseMove);
    //attachEventHandler(newDiv,"mouseout",newDivSelectMouseOut);//关闭新图层

    document.body.appendChild(newDiv);
    
    detachEventHandler(input,"focus",input_onfocus);
    detachEventHandler(input,"blur",input_onblur);
    detachEventHandler(input,"keyup",input_onkeyup);
    
    attachEventHandler(input,"focus",input_onfocus);
    attachEventHandler(input,"blur",input_onblur);//关闭新图层
    attachEventHandler(input,"keyup",input_onkeyup);

	//下拉选项鼠标移上时的事件
	function setSubDivMouseOver()
	{
		var event = arguments[0]||window.event;
		var eventSource=event.srcElement||event.target;
		eventSource.className="chk_menuclass_mouseover";
		if(input.getAttribute("notcheckvaluerange",m_AttributeFlag)!=null)
		{
			v_m_input_isSetnotcheckvaluerange = 1;
			v_m_input_Oldnotcheckvaluerange = input.getAttribute("notcheckvaluerange",m_AttributeFlag)
		}
		input.setAttribute("notcheckvaluerange", "true");
	}
	//下拉选项鼠标移上时的事件
	function setSubDivMouseOut()
	{
		var event = arguments[0]||window.event;
		var eventSource=event.srcElement||event.target;
		eventSource.className="chk_menuclass_mouseout";

		if(v_m_input_isSetnotcheckvaluerange = 1)
		{
			v_m_input_isSetnotcheckvaluerange = 0;
			input.setAttribute("notcheckvaluerange", v_m_input_Oldnotcheckvaluerange);
		}
		else
		{
			input.removeAttribute("notcheckvaluerange");
		}
	}
	//下拉选项点击时事件
	function setSubDivClick()
	{
		var event = arguments[0]||window.event;
		var eventSource=event.srcElement||event.target;
  	    input.value=eventSource.innerHTML;
		if(v_m_input_isSetnotcheckvaluerange = 1)
		{
			v_m_input_isSetnotcheckvaluerange = 0;
			input.setAttribute("notcheckvaluerange", v_m_input_Oldnotcheckvaluerange);
		}
		else
		{
			input.removeAttribute("notcheckvaluerange");
		}
	    if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));//关闭该div图层
	}

    function newDivSelectMouseMove(){v_m_menu_cursor=0;}
    //关闭新图层
    function newDivSelectMouseOut()
    {
    	v_m_menu_cursor=1;
    	var v_id = $$(v_m_menu_id);
    	if(v_id && v_m_input_cursor != 0)
    	{
	        document.body.removeChild(v_id);
	        return false;
        }
    }
    
    //关闭新图层
    function input_onblur() 
    {
    	v_m_input_cursor = 1;
    	var v_id = $$(v_m_menu_id);
    	if(v_id && v_m_menu_cursor != 0)
    	{
	        document.body.removeChild(v_id);
	        return false;
        }
    }
    function input_onfocus()
    {
    	v_m_input_cursor = 0;
    }
    //字符动态过滤
    function input_onkeyup()
    {
    	if($$(v_m_menu_id))
    	{
	    	var v_menu = $$(v_m_menu_id).childNodes;
	    	if(v_menu)
	    	{
			    for(var i=0;i<v_menu.length;i++)
			    {
			        var v_menuInnerHTML = v_menu[i].innerHTML.toUpperCase();
			        var v_inputValue = input.value.toUpperCase();
			    	if(input.value!=null && input.value!="" && v_menuInnerHTML.indexOf(v_inputValue)==-1)
			    	{
			    		v_menu[i].style.display="none";
			    	}
			    	else
			    	{
			    		if(input.value!=null && input.value!="" && v_menuInnerHTML.indexOf(v_inputValue)!=-1)
			    		{
			    			v_menu[i].style.fontWeight="bold";
			    		}
			    		else
			    		{
			    			v_menu[i].style.fontWeight="";
			    		}
			    		v_menu[i].style.display="";
			    	}
			    }
			}
		}
    }
}

/* 订购所有控件获得焦点时的不可选择下拉项事件 无返回值 */
function showAllDropMenu(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i++)
	{
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		if(myform.elements[i].getAttribute("valuerange",m_AttributeFlag) != null  && myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="2")
		{
			detachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
			attachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
			myform.elements[i].setAttribute("notcheckvaluerange", "true")
		}
	}
}
/* 订购控件显示不可选择下拉选项事件 无返回值 */
function showDropMenuOnEvent()
{
	var event = arguments[0]||window.event;
	var eventSource=event.srcElement||event.target;
	showDropMenu(eventSource);
}
/* 订购显示指定控件不可选择下拉项菜单 */
function showDropMenu(input)
{
	var v_m_input_cursor=0;//事件源 0:光标移入 1:光标移出
	var v_m_menu_cursor=1; //弹出层 0:光标移入 1:光标移出
	var v_m_menu_id = "chk_new_drop_menudiv_2";//下拉选项菜单id
    if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
    if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
    //新弹出层
    var newDiv = document.createElement("div");
    newDiv.id = v_m_menu_id;
    //newDiv.style.background = "#EFEFEF";
    //newDiv.style.border = "1px solid #860001";
    //newDiv.style.padding = "5px";
    newDiv.className="chk_menuclass";
    newDiv.style.position = "absolute";
    newDiv.style.zIndex = 9999;
    newDiv.style.overflow="auto";
    newDiv.style.width = input.offsetWidth+ "px";
    
//    newDiv.style.top = input.offsetTop+input.offsetHeight;
//    newDiv.style.left = input.offsetLeft;
    newDiv.style.top = input.offsetHeight + getChkInputTop(input) + "px";
    newDiv.style.left = getChkInputLeft(input) + "px";

    input.getAttribute("valuerange",m_AttributeFlag)
    var arr = input.getAttribute("valuerange",m_AttributeFlag).split(m_split);
    if(arr.length>25)
    {
    	newDiv.style.height = 500 + "px";
    }
    for(var i=0;i<arr.length;i++)
    {
    	var v_element=document.createElement("div");
    	v_element.innerHTML =arr[i];
    	
  	    detachEventHandler(v_element,"mouseover",setDivMouseOver);
  	    detachEventHandler(v_element,"mouseout",setDivMouseOut);
  	       	
  	    attachEventHandler(v_element,"mouseover",setDivMouseOver);
  	    attachEventHandler(v_element,"mouseout",setDivMouseOut);

        newDiv.appendChild(v_element);
    }
    
    detachEventHandler(newDiv,"mouseover",newDivOnMouseMove);
    detachEventHandler(newDiv,"mouseout",newDivOnMouseOut);

    attachEventHandler(newDiv,"mouseover",newDivOnMouseMove);
    attachEventHandler(newDiv,"mouseout",newDivOnMouseOut);//关闭新图层

    document.body.appendChild(newDiv);
    
    detachEventHandler(input,"focus",input_onfocus);
    detachEventHandler(input,"blur",input_onblur);
    
    attachEventHandler(input,"focus",input_onfocus);
    attachEventHandler(input,"blur",input_onblur);//关闭新图层

    //下拉选项鼠标移上时的事件
	function setDivMouseOver()
	{
		var event = arguments[0]||window.event;
		var eventSource=event.srcElement||event.target;
		eventSource.className="chk_menuclass_mouseover";
	}
	//下拉选项鼠标移出时的事件
	function setDivMouseOut()
	{
		var event = arguments[0]||window.event;
		var eventSource=event.srcElement||event.target;
		eventSource.className="chk_menuclass_mouseout";
	}
	
    function newDivOnMouseMove(){v_m_menu_cursor=0;}
    //关闭新图层
	function newDivOnMouseOut()
    {
    	v_m_menu_cursor=1;
    	var v_id = $$(v_m_menu_id);
    	if(v_id && v_m_input_cursor != 0)
    	{
	        document.body.removeChild(v_id);
	        return false;
        }
    }
    
    //关闭新图层
    function input_onblur() 
    {
    	v_m_input_cursor = 1;
    	var v_id = $$(v_m_menu_id);
    	if(v_id && v_m_menu_cursor != 0)
    	{
	        document.body.removeChild(v_id);
	        return false;
        }
    }
    function input_onfocus()
    {
    	v_m_input_cursor = 0;
    }
}

/* 所有控件判断类型1的验证 */
function verifyAllType1(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if (verifyInput(myform.elements[i]) == false)
		{
			focusInput(myform.elements[i]);
		    CancelClientEvent();
			return false;
		}
	}
	return true;
}
/* 所有控件判断类型2的验证 */
function verifyAllType2(myform)
{
	var i; 
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if (verifyInput(myform.elements[i]) == false && m_input == null)
		{
			m_input = myform.elements[i];
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
		focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 所有控件判断类型3的验证 */
function verifyAllType3(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if (verifyInput(myform.elements[i]) == false && m_input == null)
		{
			m_input = myform.elements[i];
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 剔除不能为空的所有控件判断类型1的验证 */
function verifyAllExceptNullableType1(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if (verifyInputExceptNullable(myform.elements[i]) == false)
		{
		    focusInput(myform.elements[i]);
		    CancelClientEvent();
			return false;
		}
	}
	return true;
}
/* 剔除不能为空的所有控件判断类型2的验证 */
function verifyAllExceptNullableType2(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if (verifyInputExceptNullable(myform.elements[i]) == false && m_input == null)
		{
			m_input = myform.elements[i];
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 剔除不能为空的所有控件判断类型3的验证 */
function verifyAllExceptNullableType3(myform)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if (verifyInputExceptNullable(myform.elements[i]) == false && m_input == null)
		{
			m_input = myform.elements[i];
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 分组验证 类型1的验证 */
function verifyAllGroupType1(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false)
			{
			    focusInput(myform.elements[i]);
			    CancelClientEvent();
				return false;
			}
		}
	}
	return true;
}
/* 分组验证 类型2的验证 */
function verifyAllGroupType2(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 分组验证 类型3的验证 */
function verifyAllGroupType3(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 可选分组验证1 类型1的验证 */
function verifyAllGroup1Type1(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group1",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false)
			{
			    focusInput(myform.elements[i]);
			    CancelClientEvent();
				return false;
			}
		}
	}
	return true;
}
/* 可选分组验证2 类型2的验证 */
function verifyAllGroup1Type2(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group1",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 可选分组验证2 类型3的验证 */
function verifyAllGroup1Type3(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group1",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 可选分组验证2 类型1的验证 */
function verifyAllGroup2Type1(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group2",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false)
			{
			    focusInput(myform.elements[i]);
			    CancelClientEvent();
				return false;
			}
		}
	}
	return true;
}
/* 可选分组验证2 类型2的验证 */
function verifyAllGroup2Type2(myform,groupname)
{
	var i;
	var length = myform.elements.length
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group2",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 可选分组验证2 类型3的验证 */
function verifyAllGroup2Type3(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group2",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 可选分组验证3 类型1的验证 */
function verifyAllGroup3Type1(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group3",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false)
			{
			    focusInput(myform.elements[i]);
			    CancelClientEvent();
				return false;
			}
		}
	}
	return true;
}
/* 可选分组验证3 类型2的验证 */
function verifyAllGroup3Type2(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group3",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 可选分组验证3 类型3的验证 */
function verifyAllGroup3Type3(myform,groupname)
{
	var i; 
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group3",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 可选分组验证4 类型1的验证 */
function verifyAllGroup4Type1(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group4",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false)
			{
			    focusInput(myform.elements[i]);
			    CancelClientEvent();
				return false;
			}
		}
	}
	return true;
}
/* 可选分组验证4 类型2的验证 */
function verifyAllGroup4Type2(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group4",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 可选分组验证4 类型3的验证 */
function verifyAllGroup4Type3(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group4",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 可选分组验证5 类型1的验证 */
function verifyAllGroup5Type1(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group5",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false)
			{
			    focusInput(myform.elements[i]);
			    CancelClientEvent();
				return false;
			}
		}
	}
	return true;
}
/* 可选分组验证5 类型2的验证 */
function verifyAllGroup5Type2(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group5",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    chkAlert(m_msgAll);
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}
/* 可选分组验证5 类型3的验证 */
function verifyAllGroup5Type3(myform,groupname)
{
	var i;
	var length = myform.elements.length;
	for (i = 0;i < length; i ++)
	{
		/* 非自定义属性的元素即不验证的元素跳过不予处理 */
		if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
		clearNotMatchInputClass(myform.elements[i]);
		/* 校验当前元素 */
		if(myform.elements[i].getAttribute("group5",m_AttributeFlag) == groupname)
		{
			if (verifyInput(myform.elements[i]) == false && m_input == null)
			{
				m_input = myform.elements[i];
			}
		}
	}
	if(m_input != null)
	{
	    showMsgInMessageId();
	    focusInput(m_input);
	    CancelClientEvent();
		return false;
	}
	return true;
}

/* 检测指定文本框输入是否合法 */
function verifyInput(input)
{
	if(input.type=="checkbox" || input.type=="radio")
	{
		var v_msg = verifyInputByName(input.name);
		if(v_msg!=null && v_msg!="")
		{
			notMatchInputClass(input);
			m_msgAll += v_msg + "\n";
			if(m_msgType == 1)chkAlert(v_msg);
			return false;
		}
	}
	else
	{
		var v_initialValue = "";
		if(input.getAttribute("initialvalue",m_AttributeFlag) != null )v_initialValue = input.getAttribute("initialvalue",m_AttributeFlag);
		/* 非空校验 */
		if (input.getAttribute("nullable",m_AttributeFlag) == "no" && (!isNull(checkTrim(input.value)) || checkTrim(input.value) == v_initialValue))
		{
			notMatchInputClass(input);
			m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "不能为空\n";
			if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "不能为空");
			return false;
		}
		/* 长度校验 */
		if (input.getAttribute("maxsize",m_AttributeFlag) != null && strlen(checkTrim(input.value)) > parseInt(input.getAttribute("maxsize",m_AttributeFlag)))
		{
			notMatchInputClass(input);
			/*m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "超出最大长度的 " + input.getAttribute("maxsize",m_AttributeFlag) + "个字节\n";*/
			/*if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "超出最大长度的 " + input.getAttribute("maxsize",m_AttributeFlag) + "个字节");*/
			m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
	        if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
	        return false;
		}
		if (input.getAttribute("minsize",m_AttributeFlag) != null && !(!isNull(checkTrim(input.value)) || checkTrim(input.value) == v_initialValue)
			&& strlen(checkTrim(input.value)) < parseInt(input.getAttribute("minsize",m_AttributeFlag)))
		{
			notMatchInputClass(input);
			m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
	        if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
	        return false;
		}
		if (isNull(checkTrim(input.value)) && checkTrim(input.value) != v_initialValue)
		{
			/* 数据类型校验 */
			switch(input.getAttribute("datatype",m_AttributeFlag))
			{
				case "number": 
					if (isNumber(checkTrim(input.value))==false)
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字");
						return false;
					}
					else
					{
						var v_rangeMsg = verifyInputMaxMinValue(input);
						if(v_rangeMsg != "")
						{
							notMatchInputClass(input);
							m_msgAll += v_rangeMsg + "\n";
							if(m_msgType == 1)chkAlert(v_rangeMsg);
							return false;
						}
					}
					break;
				case "int": 
					if (isInt(checkTrim(input.value))==false)
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
						return false;
					}
					else
					{
						var v_rangeMsg = verifyInputMaxMinValue(input);
						if(v_rangeMsg != "")
						{
							notMatchInputClass(input);
							m_msgAll += v_rangeMsg + "\n";
							if(m_msgType == 1)chkAlert(v_rangeMsg);
							return false;
						}
					}
					break;
				case "integer": 
					if (isInt(checkTrim(input.value))==false)
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
						return false;
					}
					else
					{
						var v_rangeMsg = verifyInputMaxMinValue(input);
						if(v_rangeMsg != "")
						{
							m_msgAll += v_rangeMsg + "\n";
							if(m_msgType == 1)chkAlert(v_rangeMsg);
							return false;
						}
					}
					break;
				case "float": 
					if (isFloat(checkTrim(input.value))==false)
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字\n"
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字");
						return false;
					}
					else
					{
						var v_rangeMsg = verifyInputMaxMinValue(input);
						if(v_rangeMsg != "")
						{
							notMatchInputClass(input);
							m_msgAll += v_rangeMsg + "\n";
							if(m_msgType == 1)chkAlert(v_rangeMsg);
							return false;
						}
					}
					break;    
				case "alphanumeric": 
					if (isAlphanumeric(checkTrim(input.value)) == false )
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为合法的包含字母和数字的字符串\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为合法的包含字母和数字的字符串");
						return false;
					}
					break;
				case "idcard":
				    if (isIDCard(checkTrim(input.value)) == false )
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号");
						return false;
					}
					break;
				case "date":
				    if (isDate(checkTrim(input.value)) == false )
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式");
						return false;
					}
					else
					{
						var v_temp_msg = verifyInputDateValue(input);
						if(v_temp_msg != "")
						{
							notMatchInputClass(input);
							m_msgAll += v_temp_msg + "\n";
							if(m_msgType == 1)chkAlert(v_temp_msg);
							return false;
						}
					}
					break;
				case "datetime":
				    if (isDateTime(checkTrim(input.value)) == false )
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式");
						return false;
					}
					else
					{
						var v_temp_msg = verifyInputDateTimeValue(input);
						if(v_temp_msg != "")
						{
							notMatchInputClass(input);
							m_msgAll += v_temp_msg + "\n";
							if(m_msgType == 1)chkAlert(v_temp_msg);
							return false;
						}
					}
					break;
				case "time":
				    if (isTime(checkTrim(input.value)) == false )
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式");
						return false;
					}
					else
					{
						var v_temp_msg = verifyInputTimeValue(input);
						if(v_temp_msg != "")
						{
							notMatchInputClass(input);
							m_msgAll += v_temp_msg + "\n";
							if(m_msgType == 1)chkAlert(v_temp_msg);
							return false;
						}
					}
					break;
				case "regular":
					{
						var reg = eval("/" + input.getAttribute("regexpression",m_AttributeFlag) + "/");
						if(!reg.test(checkTrim(input.value)))
						{
							notMatchInputClass(input);
							m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag) + "\n";
							if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag));
							return false;
						}
					}
					break;
				/* 在这里可以添加多个自定义数据类型的校验判断 */
				/*  case datatype2: ... ; break;        */
				/*  ....其他扩展数据类型写在这里........*/
				/*default		: break;*/
				}
			if (isValueRange(input)==false)
			{
				notMatchInputClass(input);
				m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内\n";
				if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内");
				return false;
			}
		}
	}
	return true;
}
/* 检测指定文本框输入是否合法，并剔除不能为空的判断 */
function verifyInputExceptNullable(input)
{
	var v_initialValue = "";
	if(input.getAttribute("initialvalue",m_AttributeFlag) != null )v_initialValue = input.getAttribute("initialvalue",m_AttributeFlag);
	/* 长度校验 */
	if (input.getAttribute("maxsize",m_AttributeFlag) != null && strlen(checkTrim(input.value)) > parseInt(input.getAttribute("maxsize",m_AttributeFlag)))
	{
		notMatchInputClass(input);
	    m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
	    if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
		return false;
	}
	if (input.getAttribute("minsize",m_AttributeFlag) != null && !(!isNull(checkTrim(input.value)) || checkTrim(input.value) == v_initialValue)
		&& strlen(checkTrim(input.value)) < parseInt(input.getAttribute("minsize",m_AttributeFlag)))
	{
		notMatchInputClass(input);
		m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
        if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
        return false;
	}
	if (isNull(checkTrim(input.value)) && checkTrim(input.value) != v_initialValue )
	{
		/* 数据类型校验 */
		switch(input.getAttribute("datatype",m_AttributeFlag))
		{
			case "number": 
				if (isNumber(checkTrim(input.value))==false)
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字");
					return false;
				}
				else
				{
					var v_rangeMsg = verifyInputMaxMinValue(input);
					if(v_rangeMsg != "")
					{
						notMatchInputClass(input);
						m_msgAll += v_rangeMsg + "\n";
						if(m_msgType == 1)chkAlert(v_rangeMsg);
						return false;
					}
				}
				break;
			case "int": 
				if (isInt(checkTrim(input.value))==false)
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
					return false;
				}
				else
				{
					var v_rangeMsg = verifyInputMaxMinValue(input);
					if(v_rangeMsg != "")
					{
						notMatchInputClass(input);
						m_msgAll += v_rangeMsg + "\n";
						if(m_msgType == 1)chkAlert(v_rangeMsg);
						return false;
					}
				}
				break;
			case "integer": 
				if (isInt(checkTrim(input.value))==false)
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
					return false;
				}
				else
				{
					var v_rangeMsg = verifyInputMaxMinValue(input);
					if(v_rangeMsg != "")
					{
						notMatchInputClass(input);
						m_msgAll += v_rangeMsg + "\n";
						if(m_msgType == 1)chkAlert(v_rangeMsg);
						return false;
					}
				}
				break;
			case "float": 
				if (isFloat(checkTrim(input.value))==false)
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字");
					return false;
				}
				else
				{
					var v_rangeMsg = verifyInputMaxMinValue(input);
					if(v_rangeMsg != "")
					{
						notMatchInputClass(input);
						m_msgAll += v_rangeMsg + "\n";
						if(m_msgType == 1)chkAlert(v_rangeMsg);
						return false;
					}
				}
				break;    
			case "alphanumeric": 
				if (isAlphanumeric(checkTrim(input.value)) == false )
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) += "值应该为合法的包含字母和数字的字符串\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为合法的包含字母和数字的字符串");
					return false;
				}
				break;
			case "idcard":
			    if (isIDCard(checkTrim(input.value)) == false )
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号");
					return false;
				}
				break;
			case "date":
			    if (isDate(checkTrim(input.value)) == false )
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式");
					return false;
				}
				else
				{
					var v_temp_msg = verifyInputDateValue(input);
					if(v_temp_msg != "")
					{
						notMatchInputClass(input);
						m_msgAll += v_temp_msg + "\n";
						if(m_msgType == 1)chkAlert(v_temp_msg);
						return false;
					}
				}
				break;
			case "datetime":
			    if (isDateTime(checkTrim(input.value)) == false )
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式");
					return false;
				}
				else
				{
					var v_temp_msg = verifyInputDateTimeValue(input);
					if(v_temp_msg != "")
					{
						notMatchInputClass(input);
						m_msgAll += v_temp_msg + "\n";
						if(m_msgType == 1)chkAlert(v_temp_msg);
						return false;
					}
				}
				break;
			case "time":
			    if (isTime(checkTrim(input.value)) == false )
				{
					notMatchInputClass(input);
					m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式\n";
					if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式");
					return false;
				}
				else
				{
					var v_temp_msg = verifyInputTimeValue(input);
					if(v_temp_msg != "")
					{
						notMatchInputClass(input);
						m_msgAll += v_temp_msg + "\n";
						if(m_msgType == 1)chkAlert(v_temp_msg);
						return false;
					}
				}
				break;
			case "regular":
				{
				    var reg = eval("/" + input.getAttribute("regexpression",m_AttributeFlag) + "/");
					if(!reg.test(checkTrim(input.value)))
					{
						notMatchInputClass(input);
						m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag) + "\n";
						if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag));
						return false;
					}
				}
				break;
			/* 在这里可以添加多个自定义数据类型的校验判断 */
			/*  case datatype2: ... ; break;        */
			/*  ....其他扩展数据类型写在这里........*/
			/*default		: break;*/
			}
		if (isValueRange(input)==false)
		{
			notMatchInputClass(input);
			m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内\n";
			if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内");
			return false;
		}
	}
	return true;
}
/* 通过name验证checkbox或radio的必选 */
function verifyInputByName(inputName)
{//设置信息以第一个设置为准，并记录name值，如果相同name以验证过则不予再验证
	var v_msg = "";
	for(var j=0;j<m_inputNames.length;j++)
	{
		if(m_inputNames[j]==inputName)return;
	}
	var v_name = document.getElementsByName(inputName);
	var i=0,k=0;//k记录选择项
	if(v_name[0].type=="checkbox" || v_name[0].type=="radio")
	{
		for (i = 0;i < v_name.length; i ++)
		{
			if(v_name[i].checked)k++;
		}
		if(v_name[0].getAttribute("chinese",m_AttributeFlag) != null 
			&& v_name[0].getAttribute("nullable",m_AttributeFlag) == "no")
		{
			if(k<1)
			{
				//验证不通过信息
				v_msg = v_name[0].getAttribute("chinese",m_AttributeFlag) + "必须选择";
			}
			else
			{
				if(v_name[0].type=="checkbox")
				{
					if(k - v_name[0].getAttribute("chkminselct",m_AttributeFlag) < 0 )//chkminselct 最少选择项(checkbox)
					{
						//选项不够，验证不通过信息
						v_msg = v_name[0].getAttribute("chinese",m_AttributeFlag) + "选择项不能少于 " +  v_name[0].getAttribute("chkminselct",m_AttributeFlag) + " 项";
					}
				}
			}
		}
	}
	m_inputNames.push(inputName);
	return v_msg;
}
/* 取得当前最近验证消息 */
function getVerifyMsg()
{
	return m_msgAll;
}
/* 获取提示信息类型(1:单个提示、2:全部提示) */
function getMsgType()
{
	return m_msgType;
}
/* 获取提示信息类型(1:单个提示、2:全部提示) */
function setMsgType(typeNO)
{
	m_msgType = typeNO;
}

/* trim function in javascript */
function jtrim(str)
{
	var tmpstr = new String(str);
	var i, posh, post;	
	if (tmpstr==null) 
	{
		tmpstr="";
	}	
	for(i = 0; i < tmpstr.length; i++)
	{
		if(tmpstr.charAt(i) != ' ' && tmpstr.charAt(i) != '\t')
		{
			posh = i;
			break;
		}
	}
	for(i = tmpstr.length - 1; i >= 0; i--)
	{
		if(tmpstr.charAt(i) != ' ' && tmpstr.charAt(i) != '\t')
		{
			post = i;
			break;
		}
	}
	var newstr = str.substring(posh, post + 1);
	return newstr;
}
/* 验证字符串长度是否包含两边空白部分,默认0不包含(即过滤两边空白),1包含(即不过滤两边空白) */
function checkTrim(str)
{
    if(m_TrimFlag == 1)
        return str;
    else
        return jtrim(str);
}
/* 是否整数字符的判断 true 是 false 否 */
function isInt(str)
{
	var v_Value = parseInt(str,10);
	var v_compare = 0;
	if(v_Value > 0)
	{
		v_compare = Math.ceil(str) - v_Value;
	}
	else
	{
		v_compare = Math.floor(str) - v_Value;
	}
	if (Math.abs(v_Value) < new Number(Number.MAX_VALUE) && v_compare == 0) 
	{
		return true;
	} 
	return false;
}
/* 是否浮点型字符的判断 true 是 false 否 */
function isFloat(str)
{
	var iChrCount;
	var cTemp;
	var bDot;
	var iLen;
	bDot = false;
	iLen = str.length;
	if (str.length < 1) return true;
	for ( iChrCount = 0 ; iChrCount < str.length ; iChrCount ++ ) 
	{
		cTemp = str.charAt(iChrCount);
		if (!(cTemp >= '0' && cTemp <= '9' ) && cTemp!='.'  && cTemp != '-' && cTemp != '+') 
		{
			return false;
		}
		if  ( ( cTemp == '-' || cTemp == '+' ) && iChrCount > 0 ) 
		{
			return false;
		}
		/*判断小数点*/
		if ( cTemp == '.') 
		{
			switch ( iChrCount )  
			{
				case 0:   /*第一个和最后一个字符不能是小数点*/
					return false;
					break;
				default:
					if ( iChrCount == iLen - 1) 
					{ /*最后也不能是小数点*/
						return false;
					}
					if ( bDot ) 
					{   /*不能有两个小数点*/
						return false;
					}
					else
					{
						bDot = true;
					}
					break;
			}
		}
	}
	return true;
}
/* 取得字符串的字节长度 */
function strlen(str)
{
    //str = jtrim(str);//jtrim不包含两边空白部分,注释则包含
	var i;
	var len;
	len = 0;
	for (i = 0 ; i < str.length ; i ++)
	{
		if (str.charCodeAt(i) > 255) len += 2; else len ++;
	}
	return len;
}
/* 取得字符串的字节长度(不包含两边空白部分) */
function length(str)
{
	str = jtrim(str);
	return strlen(str);
}
/* 检测字符串是否为空,空为false 非空为true */
function isNull(str)
{
	if (str.length < 1) return false;
	return true;
}
/* 检测字符串是否全为数字 */
function isNumber(str)
{
	if (str.length < 1) return true;
	var number_chars = "1234567890";
	var i;
	for (i=0;i<str.length;i++)
	{
		if (number_chars.indexOf(str.charAt(i))==-1) return false;
	}
	return true;
}
/* 检测字符串是否是字母数字型的 */
function isAlphanumeric(str)
{
	var pattern = /[a-zA-Z0-9]/;
	if(pattern.test(str))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/* 检测字符串是否是正确的中华人民共和国身份证号格式 */
function isIDCard(str)
{
    //var pattern = /\d{17}[\d|X]|\d{15}/;
    var pattern = /^\d{17}(x|X)$|^\d{18}$|^\d{15}$/;
	if(pattern.test(str))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/* 检测字符串是否是正确的日期格式 */
function isDate(str)
{
    var pattern = /^(\d{1,4})(-|\/|.)(\d{1,2})\2(\d{1,2})$/; 
	if(pattern.test(str))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/* 检测字符串是否是正确的日期时间格式 */
function isDateTime(str)
{
    var pattern = /^(\d{1,4})(-|\/|.)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
	if(pattern.test(str))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/* 检测字符串是否是正确的时间格式 */
function isTime(str)
{
    var pattern = /(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
	if(pattern.test(str))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/* 检测字符串是否在合法的范围内 */
function isValueRange(input)
{
    if(input.getAttribute("valuerange",m_AttributeFlag) != null )
	{
		if(input.getAttribute("notcheckvaluerange",m_AttributeFlag) == "true")return true;
        var arr = input.getAttribute("valuerange",m_AttributeFlag).split(m_split);
        var v_value = checkTrim(input.value);
        for(var i=0;i<arr.length;i++)
        {
            if(arr[i] == v_value)return true;
        }
	    return false;
	}
	else
	{
	    return true;
	}
}
/* 检测数值控件的最大、最小值 */
function verifyInputMaxMinValue(input)
{
	var v_msg = "";
	var v_value = checkTrim(input.value);
	if(input.getAttribute("maxvalue",m_AttributeFlag) != null && input.getAttribute("minvalue",m_AttributeFlag) != null)
	{
		if((v_value - input.getAttribute("maxvalue",m_AttributeFlag) >= 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <=0) && "true" == input.getAttribute("notequalmax",m_AttributeFlag) && "true" == input.getAttribute("notequalmin",m_AttributeFlag))
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 (" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + ") 之间";
		else if((v_value - input.getAttribute("maxvalue",m_AttributeFlag) >= 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <0) && "true" == input.getAttribute("notequalmax",m_AttributeFlag))
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 [" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + ") 之间";
		else if((v_value - input.getAttribute("maxvalue",m_AttributeFlag) > 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <=0) && "true" == input.getAttribute("notequalmin",m_AttributeFlag))
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 (" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + "] 之间";
		else if(v_value - input.getAttribute("maxvalue",m_AttributeFlag) > 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <0)
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 [" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + "] 之间";
	}
	else if(input.getAttribute("maxvalue",m_AttributeFlag) != null)
	{
		if(v_value - input.getAttribute("maxvalue",m_AttributeFlag) >= 0 && "true" == input.getAttribute("notequalmax",m_AttributeFlag))
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该大于等于 " + input.getAttribute("maxvalue",m_AttributeFlag);
		else if(v_value - input.getAttribute("maxvalue",m_AttributeFlag) > 0)
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该大于 " + input.getAttribute("maxvalue",m_AttributeFlag);
	}
	else if(input.getAttribute("minvalue",m_AttributeFlag) != null)
	{
		if(v_value - input.getAttribute("minvalue",m_AttributeFlag) <= 0 && "true" == input.getAttribute("notequalmin",m_AttributeFlag))
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该小于等于 " + input.getAttribute("minvalue",m_AttributeFlag);
		else if(v_value - input.getAttribute("minvalue",m_AttributeFlag) < 0)
			v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该小于 " + input.getAttribute("minvalue",m_AttributeFlag);
	} 
	else
	{
		v_msg = "";
	}
	return v_msg;
}
/* 检测日期控件的合法值 yyyy-MM-dd、yyyy/MM/dd*/
function verifyInputDateValue(input)
{
	var v_msg = "";
	var v_value = checkTrim(input.value);
	if(input.getAttribute("comparecurrent",m_AttributeFlag) != null)
	{
	    var v_compare = input.getAttribute("comparecurrent",m_AttributeFlag);
	    var v_current = new Date();
	    var arr = v_value.split("-");//length=3
	    if(!(arr.length>2))
	    {
	        arr = v_value.split("/");
	        if(!(arr.length>2))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式";
	            return v_msg;
	        }
	    }
	    var v_valuedate = new Date(arr[0],arr[1]-1,arr[2]);
	    if(v_compare == "1")
	    {
	        if(!(v_valuedate < v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于当前日期"
	        }
	    }
	    else if(v_compare == "2")
	    {
	        if(!(v_valuedate > v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于当前日期"
	        }
	    }
	    else if(v_compare == "3")
	    {
	        if(!(v_valuedate <= v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于等于当前日期"
	        }
	    }
	    else if(v_compare == "4")
	    {
	        if(!(v_valuedate >= v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于等于当前日期"
	        }
	    }
	    else
	    {
	        v_msg = "";
	    }
	}
	return v_msg;
}
/* 检测日期时间控件的合法值 yyyy-MM-dd hh:mm:ss、yyyy/MM/dd hh:mm:ss */
function verifyInputDateTimeValue(input)
{
    try
    {
    var v_msg = "";
	var v_value = checkTrim(input.value);
	if(input.getAttribute("comparecurrent",m_AttributeFlag) != null)
	{
	    var v_compare = input.getAttribute("comparecurrent",m_AttributeFlag);
	    var v_current = new Date();
	    var arr = v_value.split(" ");
	    var arr1 = arr[0];
	    var arr2 = arr[1].split(":");//length=3
	    var arr11 = arr1.split("-");//length=3
	    if(!(arr11.length>2))
	    {
	        arr11 = arr1.split("/");
	        if(!(arr11.length>2))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式";
	            return v_msg;
	        }
	    }
	    var v_valuedate = new Date(arr11[0],arr11[1]-1,arr11[2],arr2[0],arr2[1],arr2[2]);
	    if(v_compare == "1")
	    {
	        if(!(v_valuedate < v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于当前时间"
	        }
	    }
	    else if(v_compare == "2")
	    {
	        if(!(v_valuedate > v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于当前时间"
	        }
	    }
	    else if(v_compare == "3")
	    {
	        if(!(v_valuedate <= v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于等于当前时间"
	        }
	    }
	    else if(v_compare == "4")
	    {
	        if(!(v_valuedate >= v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于等于当前时间"
	        }
	    }
	    else
	    {
	        v_msg = "";
	    }
	}
	return v_msg;
	}
	catch(e){}
}
/* 检测时间控件的合法值 hh:mm:ss */
function verifyInputTimeValue(input)
{
    try
    {
    var v_msg = "";
	var v_value = checkTrim(input.value);
	if(input.getAttribute("comparecurrent",m_AttributeFlag) != null)
	{
	    var v_compare = input.getAttribute("comparecurrent",m_AttributeFlag);
	    var v_currentdate = new Date();
	    var v_current = v_currentdate.getHours()*3600 + v_currentdate.getMinutes()*60 + v_currentdate.getSeconds();
	    var arr = v_value.split(":");//length=3
        if(!(arr.length>2))
        {
            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式";
            return v_msg;
        }
	    var v_valuedate = arr[0]*3600 + arr[1]*60 + arr[2]*1;
	    if(v_compare == "1")
	    {
	        if(!(v_valuedate < v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于当前时间"
	        }
	    }
	    else if(v_compare == "2")
	    {
	        if(!(v_valuedate > v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于当前时间"
	        }
	    }
	    else if(v_compare == "3")
	    {
	        if(!(v_valuedate <= v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于等于当前时间"
	        }
	    }
	    else if(v_compare == "4")
	    {
	        if(!(v_valuedate >= v_current))
	        {
	            v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于等于当前时间"
	        }
	    }
	    else
	    {
	        v_msg = "";
	    }
	}
	return v_msg;
	}
	catch(e){}
}

/* 验证结束后 */
function focusInput(input)
{
    if(input.type == "text" || input.type=="textarea")
    {
	    input.focus();
	    input.select();
    }
    else
    {
        input.focus();
    }
}
/* 页面控件静态显示验证信息辅助方法 */
function showMsgInMessageId()
{
	var v_msg = m_msgAll;
	while(v_msg.search("\n")!=-1)v_msg=v_msg.replace("\n","<br>");	
	document.getElementById(m_MessageId).innerHTML = v_msg;
}

/* 页面控件验证不匹配控件的样式 */
function notMatchInputClass(input)
{
	if(input.type=="checkbox" || input.type=="radio")
	{
		var v_name = document.getElementsByName(input.name);
		for (var i = 0;i < v_name.length; i++)
		{
			if(v_name[i].getAttribute("notmatchclass",m_AttributeFlag) != null)
			{
				v_name[i].setAttribute("oldclassname", v_name[i].className,m_AttributeFlag);
				v_name[i].className = v_name[i].getAttribute("notmatchclass",m_AttributeFlag);
			}
		}
	}
	else
	{
		if(input.getAttribute("notmatchclass",m_AttributeFlag) != null)
		{
			input.setAttribute("oldclassname", input.className);
			input.className = input.getAttribute("notmatchclass",m_AttributeFlag);
		}
	}
}

/* 清除不匹配验证控件的显示样式 */
function clearNotMatchInputClass(input)
{
	if(input.type=="checkbox" || input.type=="radio")
	{
		var v_name = document.getElementsByName(input.name);
		for (var i = 0;i < v_name.length; i++)
		{
			if(v_name[i].getAttribute("notmatchclass",m_AttributeFlag) != null && v_name[i].getAttribute("notmatchclass",m_AttributeFlag) == v_name[i].className)
			{
				if(v_name[i].getAttribute("oldclassname",m_AttributeFlag) != null)
				{
					v_name[i].className = v_name[i].getAttribute("oldclassname");
				}
				else
				{
					v_name[i].className = "";
				}
			}
		}
	}
	else
	{
		if(input.getAttribute("notmatchclass",m_AttributeFlag) != null && input.getAttribute("notmatchclass",m_AttributeFlag) == input.className)
		{
			if(input.getAttribute("oldclassname",m_AttributeFlag) != null)
			{
				input.className = input.getAttribute("oldclassname");
			}
			else
			{
				input.className = "";
			}
		}
	}
}
/* 设置提示框的模式,考虑以后扩展 */
function chkAlert(msg)
{
	if(m_Alert_Mode == "0")
	{
		alert(msg);
	}
	else
	{
		alert(msg);
	}
}

/*客户端获取文件大小,返回值以字节为单位*/
function GetFileSize(filepath)    
{
    try
    {
       var fso = new ActiveXObject("Scripting.FileSystemObject");
       var filesize = Math.round(fso.GetFile(filepath).Size);
       return filesize; /*//chkAlert("文件大小为：" + filesize + "MB");*/
    }
    catch(e)
    {
        var err_no = e.number & 0xFFFF;
        if(err_no==429)
        {
            chkAlert("浏览器设置受限，请按下面的步骤设置：" + "\n" + "1、控制面板 -> Internet选项 -> 安全 -> Internet -> 自定义级别 ->安全设置的 ActiveX 控件和插件 -> 对没有标记为安全的ActiveX 控件进行初始化和脚本运行 选中“启用”，并确定.\n2、控制面板 -> Internet选项 -> 安全 -> 本地 Intranet -> 自定义级别 ->安全设置的 ActiveX 控件和插件 -> 对没有标记为安全的ActiveX 控件进行初始化和脚本运行 选中“启用”，并确定. ");
        }
    }
}

/*终止客户端事件的继续执行*/
function CancelClientEvent()
{
    /*//form1.onSubmit=false;//阻止表单Submit事件*/
    if(window.event)
    {
        window.event.cancelBubble = true;
        window.event.returnValue  = false;
    }
    /*//else
    //{
    //	event.stopPropagation();
    //	event.preventDefault();
    //}
    //m_form.submit=false;//阻止表单Submit事件*/
    return false;
}
/* 指定验证输入框输入是否合法(单个弹出提示),不捕获焦点 */
function checkInputNoFocus(input)
{
	clearNotMatchInputClass(input);
	var v_msgtype=getMsgType();
	setMsgType(1);//设置提示信息类型 1:单个弹出提示 
	if(input.getAttribute("ischeckinstant",m_AttributeFlag) != "false" )
	{
	    if(!verifyInput(input))
	    {
		    setMsgType(v_msgtype);
		    return false;
	    }
	}
	setMsgType(v_msgtype);
	return true;
}
/* 指定验证输入框输入是否合法(单个弹出提示),并剔除不能为空的判断,不捕获焦点 */
function checkInputExceptNullableNoFocus(input)
{
	clearNotMatchInputClass(input);
	var v_msgtype=getMsgType();
	setMsgType(1);//设置提示信息类型 1:单个弹出提示 
	if(!verifyInputExceptNullable(input))
	{
		setMsgType(v_msgtype);
		return false;
	}
	setMsgType(v_msgtype);
	return true;
}

/* 指定验证输入框输入是否合法(单个弹出提示) */
function checkInput(input)
{
	clearNotMatchInputClass(input);
	var v_msgtype=getMsgType();
	setMsgType(1);//设置提示信息类型 1:单个弹出提示 
	if(!verifyInput(input))
	{
		focusInput(input);
		setMsgType(v_msgtype);
		return false;
	}
	setMsgType(v_msgtype);
	return true;
}
/* 指定验证输入框输入是否合法(单个弹出提示)，并剔除不能为空的判断 */
function checkInputExceptNullable(input)
{
	clearNotMatchInputClass(input);
	var v_msgtype=getMsgType();
	setMsgType(1);//设置提示信息类型 1:单个弹出提示 
	if(!verifyInputExceptNullable(input))
	{
		focusInput(input);
		setMsgType(v_msgtype);
		return false;
	}
	setMsgType(v_msgtype);
	return true;
}
/* 获取验证控件顶端的相对位置 */
function getChkInputTop(input)
{
    var v_temp = input.offsetTop;
    var v_control = input.offsetParent;
    while(v_control!=null)
    {
        v_temp = v_temp + v_control.offsetTop;
        v_control = v_control.offsetParent;
    }
    return v_temp;
}
/* 获取验证控件左边的相对位置 */
function getChkInputLeft(input)
{
    var v_temp = input.offsetLeft;
    var v_control = input.offsetParent;
    while(v_control!=null)
    {
        v_temp = v_temp + v_control.offsetLeft;
        v_control = v_control.offsetParent;
    }
    return v_temp;
}